@@ -201,15 +201,15 @@ module LiquidInterpolatable |
||
201 | 201 |
'concat(' << subs.join(', ') << ')' |
202 | 202 |
end |
203 | 203 |
end |
204 |
- |
|
204 |
+ |
|
205 | 205 |
def regex_replace(input, regex, replacement = ''.freeze) |
206 | 206 |
input.to_s.gsub(Regexp.new(regex), replacement.to_s) |
207 | 207 |
end |
208 |
- |
|
208 |
+ |
|
209 | 209 |
def regex_replace_first(input, regex, replacement = ''.freeze) |
210 | 210 |
input.to_s.sub(Regexp.new(regex), replacement.to_s) |
211 | 211 |
end |
212 |
- |
|
212 |
+ |
|
213 | 213 |
private |
214 | 214 |
|
215 | 215 |
def logger |
@@ -177,23 +177,25 @@ describe LiquidInterpolatable::Filters do |
||
177 | 177 |
expect(@agent.interpolated['long_url']).to eq('http://2many.x/6') |
178 | 178 |
end |
179 | 179 |
end |
180 |
- |
|
181 |
- describe 'regex replace' do |
|
182 |
- let(:agent) { Agents::InterpolatableAgent.new(name: "test") } |
|
183 |
- |
|
184 |
- it 'should replace the first occurrence of a string using regex' do |
|
185 |
- agent.interpolation_context['something'] = 'foobar foobar' |
|
186 |
- agent.options['cleaned'] = '{{ something | regex_replace_first: "\S+bar", "foobaz" }}' |
|
187 |
- expect(agent.interpolated['cleaned']).to eq('foobaz foobar') |
|
188 |
- end |
|
180 |
+ end |
|
189 | 181 |
|
190 |
- it 'should replace the all occurrences of a string using regex' do |
|
191 |
- agent.interpolation_context['something'] = 'foobar foobar' |
|
192 |
- agent.options['cleaned'] = '{{ something | regex_replace: "\S+bar", "foobaz" }}' |
|
193 |
- expect(agent.interpolated['cleaned']).to eq('foobaz foobaz') |
|
194 |
- end |
|
195 |
- |
|
182 |
+ describe 'regex_replace_first' do |
|
183 |
+ let(:agent) { Agents::InterpolatableAgent.new(name: "test") } |
|
184 |
+ |
|
185 |
+ it 'should replace the first occurrence of a string using regex' do |
|
186 |
+ agent.interpolation_context['something'] = 'foobar foobar' |
|
187 |
+ agent.options['cleaned'] = '{{ something | regex_replace_first: "\S+bar", "foobaz" }}' |
|
188 |
+ expect(agent.interpolated['cleaned']).to eq('foobaz foobar') |
|
189 |
+ end |
|
190 |
+ end |
|
191 |
+ |
|
192 |
+ describe 'regex_replace' do |
|
193 |
+ let(:agent) { Agents::InterpolatableAgent.new(name: "test") } |
|
194 |
+ |
|
195 |
+ it 'should replace the all occurrences of a string using regex' do |
|
196 |
+ agent.interpolation_context['something'] = 'foobar foobar' |
|
197 |
+ agent.options['cleaned'] = '{{ something | regex_replace: "\S+bar", "foobaz" }}' |
|
198 |
+ expect(agent.interpolated['cleaned']).to eq('foobaz foobaz') |
|
196 | 199 |
end |
197 |
- |
|
198 | 200 |
end |
199 | 201 |
end |